﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Bussiness.Manager;
using Bussiness.Entity;
using AF_ORM.CORE;
namespace DSC
{
    public partial class frmToolGTKM : AfChildrenForm
    {
        public string infoBeforeChange { set; get; }
        public frmToolGTKM()
        {
            InitializeComponent();
        }
        public frmToolGTKM(string _Code, bool _IsEdit)
        {
            Code = _Code;
            IsEdit = _IsEdit;
            InitializeComponent();
            if (IsEdit)
                LoadEdit();
        }
        public bool IsEdit { set; get; }
        public string Code { set; get; }
        public int Id { set; get; }
        public void LoadEdit()
        {
            PT_ToolKMGTEntity obj = PT_ToolKMGTManager.CreateInstant().GetByCode(Code);
            if (obj != null)
            {
                Id = obj.Id;
                txtCode.Text = obj.Code;
                txtName.Text = obj.Name;
                txtCode.Enabled = false;
                
                checkActive.Checked = obj.IsActive;
                this.Text = "Sửa phụ tùng";
            }
            else
            {
                this.Text = "Thêm phụ tùng";
            }
            infoBeforeChange = GetInfo();
        }
        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private bool CheckInput()
        {
            string error = "";
            if (string.IsNullOrEmpty(txtCode.Text.Trim()))
            {
                error += "- Tên phụ tùng\r\n";
            }

            if (string.IsNullOrEmpty(txtName.Text.Trim()))
            {
                error += "- Mã phụ tùng \r\n";
            }
            if (!string.IsNullOrEmpty(error))
            {
                MessageBox.Show("Vui lòng điền đầy đủ các thông tin sau:\r\n" + error);
                return false;
            }
            PT_ToolKMGTEntity option = new PT_ToolKMGTEntity();
            option.Code = txtCode.Text.Trim();
            option.IsDeleted = false;
            List<PT_ToolKMGTEntity> lst = PT_ToolKMGTManager.CreateInstant().SelectWithConditionLST(option);
            if (lst!=null && lst.Count > 0)
            {
                if (lst[0].Code != Code)
                {
                    MessageBox.Show("Mã phụ tùng đã tồn tại. Vui lòng nhập mã phụ tùng khác.");
                    return false;
                }
            }
            return true;
        }
        private void SaveInfo()
        {
            if (CheckInput())
            {
                PT_ToolKMGTEntity obj = new PT_ToolKMGTEntity();

                obj.Code = txtCode.Text.Trim();
                obj.Name = txtName.Text.Trim();
                obj.IsActive = checkActive.Checked;
                obj.IsDeleted = false;
                if (IsEdit == true)
                {
                    obj.Id = Id;
                    obj.Code = Code;
                    obj.UpdatedBy = SessionLogin.UserCode;
                    obj.UpdatedDate = DateTime.Now;
                    if (PT_ToolKMGTManager.CreateInstant().Update(obj) != null)
                    {
                        MessageBox.Show("Cập nhật thông tin thành công");
                        RaiseChangeDataEvent();
                        // history
                        PT_ActionHistoryManager.CreateInstant().SaveHistory(SessionLogin.UserId, "Sửa phụ tùng khuyến mãi giảm trừ", infoBeforeChange + " ---- " + GetInfo());
                    }
                    else
                        MessageBox.Show("Cập nhật thông tin không thành công. Vui lòng thử lại");
                }
                else
                {
                    obj.CreatedBy = SessionLogin.UserCode;
                    obj.CreatedDate = DateTime.Now;
                    if (PT_ToolKMGTManager.CreateInstant().Insert(obj) != null)
                    {
                        MessageBox.Show("Thêm phụ tùng khuyến mãi giảm trừ thành công");
                        RaiseChangeDataEvent();
                        ResetForm();
                        // history
                        PT_ActionHistoryManager.CreateInstant().SaveHistory(SessionLogin.UserId, "Thêm phụ tùng khuyến mãi giảm trừ", GetInfo());
                    }
                    else
                        MessageBox.Show("Thêm phụ tùng khuyến mãi giảm trừ không thành công. Vui lòng thử lại");
                }
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            SaveInfo();
        }
        private void ResetForm()
        {
            txtCode.Text = "";
            txtName.Text = "";
        }
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.Escape) // thoat
            {
                this.Close();
                return true;
            }
            if (keyData == Keys.F5) // Luu thong tin
            {
                if(btnSave.Enabled==true)
                    SaveInfo();
                else
                    MessageBox.Show("Bạn không có quyền thực hiện chức năng này");
                return true;
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }
        public string GetInfo()
        {
            return "Mã PT:" + txtCode.Text + "\nTên PT:" + txtName.Text;
        }
    }
}
